08 - Oświetlacze
Wprowadzenie do Systemów Wizyjnych
Politechnika Poznańska, Instytut Robotyki i Inteligencji Maszynowej
Ćwiczenie laboratoryjne 8: oświetlenie
Powrót do spisu treści ćwiczeń laboratoryjnych
Wstęp
Dodatkowe i dostosowane do zadania oświetlenie jest częstym rozwiązaniem przy wykorzystywaniu systemów wizyjnych w obszarze przemysłowym (ang. Machine Vision). Zastosowanie odpowiedniego typu oświetlacza pozwala uzyskać z obrazu istotne informacje związane z zadaniami takimi, jak kontrola jakości, detekcja uszkodzeń, rozpoznawanie i klasyfikacja elementów, a także ich kształtów oraz konturów. Najczęściej wykorzystywanymi typami oświetlaczy są:
Pierścieniowe (ring light)
Zadaniem oświetlaczy typu pierścieniowego jest przede wszystkim inspekcja powierzchni płaskich z wykorzystaniem zjawiska odbicia rozproszonego (promień padający na powierzchnię jest rozpraszany pod wieloma kątami) co przekłada się na zastosowanie w kontroli jakości polegającej na wykrywaniu defektów na powierzchni (np. zarysowań).
Pierścieniowe ciemnego pola (dark field light)
Oświetlacze tego typu poprzez zastosowanie światła emitowanego pod niewielkim kątem wykorzystywane są do wzmocnienia kontrastu pomiędzy cechami obiektu, występującymi na jego powierzchni, co ułatwia rozpoznanie poszczególnych występujących elementów. Zastosowaniem tego typu urządzeń jest detekcja krawędzi, konturów oraz występujących na powierzchni defektów.
Kopułkowe / tunelowe (dome / tunnel light)
Podstawową zaletą oświetlaczy kopułkowych jest zapewnienie bezcieniowego oświetlenia, które przydatne jest w rozwiązaniach z zakresu: - inspekcji lustrzanych i rozpraszających światło obiektów, - optycznego rozpoznawania znaków (OCR), - kontroli etykiet oraz nadruków.
Tylne (back light)
Głównym zadaniem oświetlaczy tego typu jest podkreślenie konturów płaskich obiektów co wykorzystywane jest przy precyzyjnych pomiarach takich jak: - określanie zewnętrznych wymiarów obiektu, - detekcja elementów, - wykrywanie otworów.
Współosiowe (coaxial light)
Zadaniem oświetlaczy współosiowych jest oświetlanie powierzchni odbijających światło w tym celu wykorzystują rozpraszacz wiązki lub zwierciadło półprzezroczyste zmieniające kierunek światła ze źródła tak, aby padało ono na obiekt równolegle do osi optycznej kamery. Ta technika stosowana jest do kontroli obwodów drukowanych (PCB), odblaskowych etykiet lub kontroli druku.
RGB
Oświetlacze kolorowe (RGB) stosowane są zazwyczaj w momencie, gdy obrabiane przedmioty mają taki sam kształt i rozmiar, a rozróżnia je kolor.
Podczas zajęć wykorzystywane będą oświetlacze firmy LATAB, oświetlacze RGB firmy Ulanzi oraz namiot bezcieniowy firmy Puluz.
Zadanie wstępne
Zapoznaj się z zasadami obsługi sterownika oświetlaczy przemysłowych firmy LATAB i przetestuj dostępne oświetlacze.
Informacja o środowisku wirtualnym
UWAGA Ta instrukcja wymaga systemu operacyjnego Ubuntu oraz zainstalowanych dodatkowych bibliotek (Tesseract OCR).
Zadania do samodzielnej realizacji
import cv2
def camera():
"""Camera capture."""
= cv2.VideoCapture(2)
cap
while True:
= cap.read()
ret, frame if not ret:
print("Cannot connect to the camera.")
break
"camera capture", frame)
cv2.imshow(
if cv2.waitKey(10) == ord('q'):
break
if __name__ == '__main__':
camera()
- Przy pomocy oświetlacza pierścieniowego ciemnego pola przygotuj aplikację do wykrywania krawędzi. W tym celu:
- stwórz skrypt
dark_field_light.py
, do którego dodaj przedstawiony powyżej fragment kodu, - korzystając z algorytmu Canny’ego wyświetl rezultat przedstawiający wykryte krawędzie na odczytanym z kamery obrazie,
- dodaj suwaki (createTrackbar()) tak, aby dynamicznie móc dobierać wartości progów algorytmu.
Na rysunku poniżej przedstawiony został oświetlacz typu dark field oraz efekt końcowy działania algorytmu. Porównaj otrzymany rezultat z obrazem otrzymanym bez włączonego oświetlacza pierścieniowego ciemnego pola.
- Korzystając z oświetlenia tylengo przygotuj aplikację do detekcji otworów. W tym celu:
- stwórz skrypt
back_light.py
i wykorzystaj przedstawiony powyżej fragment kodu, - korzystając z transformaty Hougha do wykrywania okręgów zaimplementuj rozwiązanie pozwalające na wykrywanie otworów w analizowanym obrazie,
- dodaj suwaki (createTrackbar()), tak aby dostosowując minimalny oraz maksymalny zakres promienia wykryć wszystkie okręgi na zdjęciu.
Poniższe rysunki przedstawiają dostępne oświetlacze tylne oraz oczekiwane rozwiązanie zadania.
- Wykorzystując namiot bezcieniowy, oświetlacze RGB oraz plansze zbadaj wpływ zmiany barwy oświetlenia LED na wyjściowy obraz. Na zdjęciu w skali szarości wyróżnij każdą z barw oraz zanotuj wartości dla których odpowiednie znaczniki najlepiej się odróżniają. Poniższy przykład przedstawia rezultat wyróżniający barwę czerwoną (zdjęcia kolejno to: oryginał, obraz w skali szarości bez oświetlenia oraz przy odpowiednim oświetleniu).
Zadanie dodatkowe
Korzystając z przygotowanego skryptu serial_numbers_recognition.py
, który zawiera w sobie implementację Tesseract OCR, czyli silnika do optycznego rozpoznawania znaków, dobierz odpowiedni typ oświetlacza, który pozwoli na rozpoznawanie numerów seryjnych dostępnych na spodzie puszek po napojach. Poniżej przedstawione zostało porównanie podglądu spodu jednej z puszek bez wykorzystania dodatkowego oświetlacza oraz przy odpowiednim oświetleniu.
Przykładowe wyniki dla detekcji numerów i cyfr wyglądają następująco:
Detected text:
'24', '122021', '2'] [
Detected text:
'.5.202421', '23.09.'] [